package com.hou.springmq.mq.producer.topic;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Service;

import javax.jms.DeliveryMode;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;

@Service
public class TopicSender {
    @Autowired
    @Qualifier("jmsTopicTemplate")
    private JmsTemplate jmsTemplate;
    /**
     * 发送一条消息到指定的队列（目标）
     * @param queueName 队列名称
     * @param message 消息内容
     */
    public void send(String topicName,final String message){
        //设置其他属性
        jmsTemplate.setDeliveryMode(DeliveryMode.NON_PERSISTENT);//非持久化,默认是持久化
        jmsTemplate.setPriority(4);//优先级
        jmsTemplate.setTimeToLive(1000*60*5); //设置存活时间(毫秒)
        //jmsTemplate.set 其他等等
        jmsTemplate.send(topicName, new MessageCreator() {
            @Override
            public Message createMessage(Session session) throws JMSException {
                return session.createTextMessage(message);
            }
        });
    }
}
